Over the years there have been various types of computing systems. Four of the major types are server, client, client-server and display-server. All types of computing systems perform a computing task for a user.
Server systems consist of a single system where all computing is done in a central location and there is no user interaction with the computing task other then the initial starting of the task. A typical server system is a traditional mainframe.
Client systems consist of a single system that performs all computing, but in client systems there is constant user interaction with the computing task. Typical client systems are personal computers, laptops, smartphones and game consoles.
Client-server systems consist of both a server computing system and a client computing system which together perform a single computing task. These systems each separately operate as both a server system and a client system. Operating as both server and client, the client-server system performs a single computing task requiring user interaction in the task at least in connection with acting as client in the task. Typical client-server systems in use today are airline reservation systems and large retail store point-of-sale systems. A special type of client-server system is the web server/browser client. As is the case with any client-server application, the web server performs a single unique task, serving responses to requests received. However rather than having a unique client program associated with each server program, the browser program serves as a generic client program. The browser is used by all web servers. It will be noted that browsers presently may operate an application by downloading a program on the fly which is processed in the browser; therefore, web browser/server computing, particularly in instances of program download, is very similar to standard client-server computing.
Display-server systems consist of a server computing system and a non-intelligent user side system. A predominant aspect of this non-intelligent user system is a display. The user system is therefore sometimes referred to as a “display”, hence the term display-server system for these types of computing systems. As with the server only computing system, substantially all computing tasks are performed by the server in the display-server system, and little, if any, computing (other than to the extent needed for input and output operations) is performed by the display. In these display-server systems, the display is, however, highly interactive with the computing task that is processed by the server. The server performs substantially all of the processing and other functions of a client system (of a client system type of computing system) because the display has only very limited, if any, processing capability. In effect, the display merely displays pixels corresponding to data (representing the pixels) received from the server by the display. In most cases, data (representing pixels for display) is delivered by the server to the display for viewing (such as a video stream or other data stream) and low-level user events at the display (such as keystroke and mouse movements) are sent natively by the display to the server.
Display-server computing is the least employed arrangement for present computing systems, but display-server systems can provide benefits and are expected to grow in popularity. A typical display-server computing environment is called zero-client computing. In zero-client computing, a desktop operating system (OS) and applications are processed by a server (instead of by a client system, such as the typical personal computer). The user side system is often primarily a non-intelligent “thin-client” device, coupled with a display and keyboard (or other input and output device(s)).
Another environment in which display-server computing is employed is 3D games. The 3D games are processed by a server system, generally a high performance server computer, and the server system delivers a pixel video stream of the game to a very “thin-client” user side system connected to a television set. A traditional game controller input device at the user side system communicates inputs of a user to the server system during game play.
It would be advantageous, therefore, to provide greater operational flexibility and increased scalability for display-server systems.